package me.huha.service;

import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * @Title: ElasticSearchService.java
 * @Author: Yepx
 * @mail: yepx2013@gmail.com
 * @CreateTime: 2017年9月29日 下午3:32:25
 * @Todo: 
 */
public interface ElasticSearchService {
	
	/**
	 * 创建
	 * @param indices
	 * @param types
	 * @param data
	 * @return
	 */
	JSONObject create(String indices, String types, JSONArray data);
	
	/**
	 * 查询
	 * @param index
	 * @param types
	 * @param searchKey
	 * @return
	 */
	JSONObject query(String indices, String types, Map<String, Object> searchKey);
	
	/**
	 * 删除索引库
	 * @param indices
	 * @return
	 */
	JSONObject deleteIndex(String indices);
	
	/**
	 * 删除索引库下的某条记录
	 * @param indices
	 * @param types
	 * @return
	 */
	JSONObject deleteIndexBykeyAndValue(String indices, String types, String id);
	
	/**
	 * 更新
	 * @param indices
	 * @param types
	 * @param id
	 * @param data
	 * @return
	 */
	JSONObject update(String indices, String types, String id, Map<String, Object> data);

	/**
	 * 创建或者更新
	 * @param indices
	 * @param types
	 * @param id
	 * @param oldData
	 * @param newData
	 * @return
	 */
	JSONObject createOrUpdate(String indices, String types, String id, Map<String, Object> oldData, Map<String, Object> newData);
	
	/**
	 * 批量导入
	 * @param indices
	 * @param types
	 * @param filePath
	 * @return
	 */
	JSONObject batchBulkIn(String indices, String types, String filePath);
	
	/**
	 * 批量导出
	 * @param indices
	 * @param types
	 * @param filePath
	 * @return
	 */
	JSONObject batchBulkOut(String indices, String types, String filePath);
}
